home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio / Ham Radio CD-ROM (Emerald Software) (1995).ISO / misc / utilitys / comb.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  3.0 KB  |  58 lines

  1. 10  PRINT: PRINT: PRINT "COMBLINE FILTER DESIGN"
  2. 11  PRINT" Calculates the demensions of band pass microstrip comb line filters.
  3. 12  PRINT" Normalized low pass prototype values for the desired filter required
  4. 15  PRINT:PRINT,"K2UYH ----- MODIFIED IBM PC ----- WA2TIF":PRINT
  5. 20  PRINT "CAPACITIVE-TAPED EQUAL END SECTION CASE": PRINT
  6. 30  DIM G(10), C(10), Z(10), ZO(10,10), ZE(10,10), A(10,10): REM PRECISION 5
  7. 40  PRINT: INPUT "CAPACITOR OR STUB LOADED CASE (C/S)"; C$
  8. 50  PRINT: INPUT "NUMBER OF FILTER SECTIONS"; N: DR=PI/180
  9. 60  PRINT: PRINT "LOW PASS PROTOTYPE ELEMENTS:"
  10. 70  FOR I=0 TO N+1: PRINT "G("; I; ") ";: INPUT G(I): NEXT
  11. 80  PRINT: INPUT "FILTER CENTER FREQ IN MHZ AND FRACTIONAL BW"; F0, Q: W0=F0*2*PI*1E+06
  12. 90  INPUT "TERMINAL Z0 AND UNMATCHED Z"; RT, R
  13. 100  INPUT "RESONATOR LENGTH IN DEGREES"; AR
  14. 110  IF C$="C" THEN AS=45: GOTO 130
  15. 120  INPUT "TUNING STUB LENGTH IN DEGREES"; AS
  16. 130  LR=AR*DR: LS=AS*DR: G=1/R
  17. 140  TR=SIN(LR)/COS(LR): TS=SIN(LS)/COS(LS): PRINT
  18. 150  IF C$="C" THEN LF=2*LR/SIN(2*LR)+1: B=G*SQR(R/RT-1): GOTO 170
  19. 160  LF=2*LR/SIN(2*LR)+2*LS/SIN(2*LS): B=G*SQR(R/RT-1)
  20. 170  GX=Q*R/(G(0)*G(1)*2): K=B*GX*LF*TS/(1-B*GX*2*LR/SIN(2*LR))
  21. 180  Z(1)=K/B: Z(N)=Z(1): C=1/(1+K/TS): C(1)=B/(K*W0): C(N)=C(1)
  22. 190  IF C$="C" THEN LC=2*LR/SIN(2*LR)+C ELSE LC=2*LR/SIN(2*LR)+C*2*LS/SIN(2*LS)
  23. 200  A(1,2)=Q*SQR(LF*LC)/(2*SQR(G(1)*G(2))): A(N-1,N)=A(1,2)
  24. 210  ZR=GX*LC/(TR*(1-A(1,2)^2)): PRINT "RESONATOR Z =", ZR: PRINT
  25. 220  IF N<=3 THEN 270 ELSE FOR I=1 TO 6: FOR J=2 TO N-2: ZT(J)=Z(J)
  26. 230  A(J,J+1)=Q*LF*(1+(A(J-1,J)^2+A(J+1,J+2)^2)/2)/(2*SQR(G(J)*G(J+1)))
  27. 240  Z(J)=ZR*TS*TR*(1-A(J-1,J)^2-A(J,J+1)^2): C(J)=1/(W0*Z(J)): NEXT: NEXT
  28. 250  FOR J=2 TO N-2
  29. 260  IF ABS((ZT(J)-Z(J))/Z(J))>0.01 THEN PRINT "CONV. ER": END ELSE NEXT
  30. 270  IF N=2 THEN 280 ELSE J=N-1: Z(J)=ZR*TS*TR*(1-A(J-1,J)^2-A(J,J+1)^2): C(J)=1/(W0*Z(J))
  31. 280  FOR J=1 TO N-1: ZE(J,J+1)=ZR*(1+A(J,J+1)): ZO(J,J+1)=ZR*(1-A(J,J+1))
  32. 290  IF C$="C" THEN 320
  33. 300  PRINT "N"; J; TAB(6); "Z STUB"; Z(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
  34. 310  J=N: PRINT "N"; J; TAB(6); "Z STUB"; Z(J): GOTO 340
  35. 320  PRINT "N"; J; TAB(6); "CAP"; C(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
  36. 330  J=N: PRINT "N"; J; TAB(6); "CAP"; C(J)
  37. 340  PRINT: CC=G/(RT*B*F0*1E+06): PRINT "COUPLING CAPACITORS"; CC
  38. 350  PRINT: PRINT "WANT TO CHANGE: NOTHING (N), UNMATCHED Z (Z)
  39. 360  PRINT "LENGTH RESONATOR (LR), LENGTH STUB (LS)";: INPUT Q$
  40. 370  IF Q$="N" THEN 420 ELSE IF Q$="Z" THEN INPUT "NEW Z"; R: GOTO 130
  41. 380  IF Q$="LR" THEN INPUT "NEW RESONATOR LENGTH IN DEG"; AR: GOTO 130
  42. 390  IF Q$="LS" AND C$="C" THEN 350
  43. 400  IF Q$="LS" THEN INPUT "NEW STUB LENGTH IN DEG"; AS: GOTO 130
  44. 410  IF Q$="END" THEN END ELSE 350
  45. 420  PRINT: INPUT "WANT HARD COPY (Y/N)"; Q$
  46. 430  IF Q$="N" THEN END ELSE LPRINT
  47. 440  LPRINT, "COMBLINE FILTER DESIGN": LPRINT
  48. 450  LPRINT, "CENTER FREQ"; F0, "BANDWIDTH"; Q*F0
  49. 460  LPRINT, "Z TERMINAL"; RT,"Z UNMATCHED"; R
  50. 470  LPRINT, "LENGTH RESONATOR"; LR/DR, "LENGTH STUB"; LS/DR
  51. 480  LPRINT, "RESONATOR Z=", ZR: LPRINT: FOR J=1 TO N-1
  52. 490  IF C$<>"C" THEN 520
  53. 500  LPRINT, "N"; J; TAB(6); "CAP"; C(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
  54. 510  J=N: LPRINT, "N"; J; TAB(6); "CAP"; C(J): GOTO 540
  55. 520  LPRINT, "N"; J; TAB(6); "Z STUB"; Z(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
  56. 530  J=N: LPRINT, "N"; J; TAB(6); "Z STUB"; Z(J)
  57. 540  LPRINT: LPRINT, "COUPLING CAPACITORS"; CC: GOTO 350
  58.